package enums;

import models.Acudiente;
import models.Coordinador;
import models.Entity;
import models.Orientador;
import models.Profesor;
import models.Secretario;

public enum Role {
	SUPADMIN(null, "public/superadmin/superadmin.html"),
	/**
	 * 
	 */
	COORDINADOR(Coordinador.class, "public/coordinador/coordinador.html"),
	/**
	 * 
	 */
	PROFESOR(Profesor.class, "public/profesor/profesor.html"),

	/**
	 * 
	 */
	ACUDIENTE(Acudiente.class, "public/acudiente/acudiente.html"),

	ORIENTADOR(Orientador.class, "public/profesor/profesor.html"),

	SECRETARIO(Secretario.class, "public/secretario/secretario.html");

	// **********************************************************************//

	private Class<? extends Entity<?>> entity;
	private String redirectURL;

	private Role(Class<? extends Entity<?>> entity, String redirectURL) {
		this.entity = entity;
		this.redirectURL = redirectURL;
	}

	public Class<? extends Entity<?>> getEntity() {
		return entity;
	}

	public String getRedirectURL() {
		return redirectURL;
	}

	public static Role getRoleFromClass(Class<?> clazz) {
		for (Role r : values()) {
			if (r.getEntity() == clazz)
				return r;
		}
		return null;
	}
}
